﻿using System;
using System.ServiceModel;
using System.Collections.Generic;
using com.creditos.be.liclEntities;
using com.creditos.be.liclBases;
using com.creditos.be.liclSolcred;

namespace com.creditos.bl.interfaces.liclBases
{
    [ServiceContract(Namespace = "http://com.creditos.bl.interfaces.liclBases", Name = "IBasesExternasBL", SessionMode = SessionMode.Allowed)]
    public interface IBasesExternasBL
    {
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "InicioBuro_Creditos")]
        Global InicioBuro_Creditos(List<ClienteConsulta> ClienteConsultaList, string nombrePrograma);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarBuroDatosGenerales")]
        void ActualizarBuroDatosGenerales(List<DatGen> oDatosGenerales);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarBuroCalificacion")]
        void ActualizarBuroCalificacion(List<Calificacion> oCalificacion);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarBuroMorosidad")]
        void ActualizarBuroMorosidad(List<Morosidad> oMorosidad);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarBuroDeudaSBSEntidad")]
        void ActualizarBuroDeudaSBSEntidad(List<MorosidadSBS> oMorosidadSBS);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerListaIntegrantesBuroCredito")]
        List<IntegrantesBuro> ObtenerListaIntegrantesBuroCredito(ClienteConsulta oIntegrantes);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerListaResultadoReglas")]
        List<ReglasEvaluacion> ObtenerListaResultadoReglas(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroDatosGenerales")]
        List<DatGen> ObtenerBuroDatosGenerales(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroOtraDireccion")]
        List<OtrDir> ObtenerBuroOtraDireccion(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroOmisos")]
        List<Omisos> ObtenerBuroOmisos(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroRepresentanteLegal")]
        List<RepresentantesLegales> ObtenerBuroRepresentanteLegal(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroCalificaciones")]
        List<Calificacion> ObtenerBuroCalificaciones(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroAdversos")]
        List<Adversos> ObtenerBuroAdversos(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroMorosidad")]
        List<Morosidad> ObtenerBuroMorosidad(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroProtestos")]
        List<Protesto> ObtenerBuroProtestos(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroResumenDeudaSBSEntidad")]
        List<DeudaSBS> ObtenerBuroResumenDeudaSBSEntidad(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerBuroDeudaSBSEntidad")]
        List<MorosidadSBS> ObtenerBuroDeudaSBSEntidad(ClienteConsulta oSolicitud);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarPoliticaCredito")]
        List<ReglaCentralRiesgo> ActualizarPoliticaCredito(ReglaCentralRiesgo oReglaCentral);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarReglaNegocio")]
        List<ReglaCentralRiesgo> ActualizarReglaNegocio(ReglaCentralRiesgo oReglaCentral);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarReglaNegocioCondicion")]
        List<ReglaCentralRiesgo> ActualizarReglaNegocioCondicion(ReglaCentralRiesgo oReglaCentral);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ListarVariables")]
        List<ReglaCentralRiesgo> ListarVariables();

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerPoliticaCredito")]
        List<CentralRiesgoBE> ObtenerPoliticaCredito(ReglaCentralRiesgo oReglaCentral);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerReglaNegocio")]
        List<ReglaCentralRiesgo> ObtenerReglaNegocio(ReglaCentralRiesgo oReglaCentral);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerReglaNegocioCondicion")]
        List<ReglaCentralRiesgo> ObtenerReglaNegocioCondicion(ReglaCentralRiesgo oReglaCentral);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "EvaluarCentralRiesgo")]
        void EvaluarCentralRiesgo(ClienteConsulta oDatos);
    }
}
